package org.jeecg.modules.system.service;


import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.system.entity.bo.ChunkUploadBo;
import org.jeecg.modules.system.entity.bo.FileSliceConfBo;

/**
 * @author yxp
 * @date 2024/2/7
 * @desc 分片上传和断点续传相关方法
 **/
public interface IFileUploadService {

    /**
     * 注册文件上传信息-如果已存在，返回续传进度等信息
     *
     * @param bo
     * @return
     */
    Result<?> registerFileSliceInfo(FileSliceConfBo bo);

    /**
     * 文件块上传
     *
     * @param bo
     * @return
     */
    Result<?> uploadChunk(ChunkUploadBo bo);

    /**
     * 文件块合并-同时删除临时块文件等数据
     *
     * @param bo
     * @return
     */
    Result<?> mergeFile(FileSliceConfBo bo);

    /**
     * 删除文件数据-删除数据库同时删除文件服务器的相关数据
     *
     * @param bo
     * @return
     */
    Result<?> deleteFileInfo(FileSliceConfBo bo);
}
